Many types of applications create “objects” as the applications execute. There are various types of objects; each used internally by an application for operation, particularly in the realm of middleware software. By way of example, work queue objects contain work items or messages waiting to be handled and are configured via object attributes (such as maximum length of the queue, any routing information indicating where to route work items on the queue, security settings, utilization monitoring settings, clustering settings). A “process” object may contain information about an external program that should be started when a work item or message arrives on the queue. A “name list” object is a listing of other object names which can be contacted as a group. A “security” object (such as an SSL security object) contains attributes for security settings. A “user” object may contain records about the respective user. A “device” object may represent computer components such as printers. A “channel” object may describe attributes of a communications channel used by the application (i.e. name of the channel, IP address of channel connection, channel type, security information and connection parameters.
There are certain circumstances when it is necessary to reset an application or application instance, i.e. clear or delete some or all objects created by the application or application instance. For example, if the configuration of an application becomes so complex or corrupted that it can no longer execute effectively, it may be necessary to reset it. As another example, another external program may need to be tested for compatibility with the application, and a clean/original state of the application may be needed where the application initially has no objects of the type created during execution. To make matters more difficult, some types of objects may be locked by an external application or operating system such that no other application can access the queue, and the queue cannot be removed while locked.
There are different, known techniques to reset an application or application instance. A systems administrator with appropriate level of privilege can manually enter commands to identify the application instances, and then query each application instance to determine the types and names of objects used by or present in the application instance. For example, the application instance would often report a queue object and whether it was locked and contained work items. In such a case, the queue object needed to be unlocked and its work items needed to be removed before the queue object itself could be removed. The lock removal was performed by contacting the holders of the locks and asking them to stop execution of their external applications which hold the locks. After removal of the locks, the systems administrator entered manual commands to clear the work items on the queue and then remove the queue object. Typically, thousands of commands were required to complete such a process and these commands were typed manually. Also, there was time and effort expended in contacting the holders of the locks on the queue objects and waiting for them to stop execution of their applications which held the locks.
Alternately, an operator could delete the current application instance altogether, and install a new, clean copy of the application instance. However, this caused problems such as loss of settings and an outage to the application. Also, the operator would typically need a super high level of privilege such as root privilege to delete an application instance (depending on the configuration), and the operator may not have such level of privilege.
Accordingly, a goal of the present invention is to facilitate the resetting of an application or application instance.
Another object of the present invention is to facilitate the removal of a queue object.